<?php
require_once('db.php');
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  $fullname = mysqli_real_escape_string($conn, $_POST['fullname']);
  $phone = mysqli_real_escape_string($conn, $_POST['phone']);
  $login = mysqli_real_escape_string($conn, $_POST['login']);
  $pass = mysqli_real_escape_string($conn, $_POST['pass']);
  // Валидация fullname - должны быть только кириллица, латиница и пробелы
  if (preg_match("/[^a-zа-яё ]/iu", $_POST["fullname"])) {
    $error_message = "Ошибка: ФИО может содержать только буквы и пробелы.";
  }
  // Валидация login - уникальный и минимум 3 символа
  if (strlen($login) < 3) {
    $error_message = "Ошибка: Логин должен содержать минимум 3 символа.";
  }
  // Валидация pass - хотя бы одна буква в нижнем и верхнем регистре
  if (!preg_match("/[a-z]+/", $pass) || !preg_match("/[A-Z]+/", $pass)) {
    $error_message = "Ошибка: Пароль должен содержать хотя бы одну букву в нижнем и верхнем регистре.";
  }
  // Добавить условие проверки наличия ошибки, прежде чем выполнить код добавления в базу
  if (!isset($error_message)) {
    $sql = "INSERT INTO users (fullname, phone, login, pass) VALUES (?, ?, ?, ?)";
    $stmt = $conn->prepare($sql);
    $stmt->bind_param("ssss", $fullname, $phone, $login, $pass);
    $stmt->execute();
    if ($stmt->affected_rows > 0) {
      header('Location:login.php');
    } else {
      echo "<script>alert('Ошибка при добавлении данных: '. mysqli_error($conn))</script>";
    }
    $stmt->close();
  }
}
$conn->close(); ?>



<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="CSS/style.css">
  <!-- на случай, если будет фавиконка -->
  <!-- <link rel="shortcut icon" href="favicon.ico" type="image/x-icon">  -->
  <title>Регистация</title>
</head>

<body>
  <header>
    <div class="logo">Починим!</div>
    <nav><a href="login.php">Войти</a></nav>
  </header>
  <main>
    <h1>Регистрация</h1>
    <form action="index.php" method="post">
      <label for="fullname">ФИО:</label>
      <input type="text" name="fullname" id="fullname" placeholder="фио" required>
      <label for="phone">Номер телефона:</label>
      <input type="tel" name="phone" id="phone" placeholder="8(XXX)-XXX-XX-XX" required>
      <label for="login">Логин:</label>
      <input type="text" name="login" id="login" placeholder="логин" required>
      <label for="password">Пароль:</label>
      <input type="password" name="pass" id="pass" placeholder="пароль" required>
      <?php if (isset($error_message)) echo '<div style="color: red;">' . $error_message . '</div>'; ?>
      <button type="submit">Зарегистрироваться</button>
    </form>
  </main>
  <script>
    let elem = document.getElementById("phone");
    elem.addEventListener('input', function() {
      let x = elem.value.replace(/\D/g, '').match(/(\d{0,1})(\d{0,3})(\d{0,3})(\d{0,2})(\d{0,2})/);
      elem.value = !x[1] ? '' : 8 + '(' + x[2] + ')' + x[3] + '-' + x[4] + '-' + x[5];
    });
  </script>
</body>

</html>